#pragma once

#include "Sample.h"
#include "SoundBank.h"

/*
Implementation of SampleDataProvider that uses a SoundBank to provide the samples it needs to deliver.
*/
class WaveFormProvider : public SampleDataProvider
{
public:
	WaveFormProvider(WaveForm waveForm, SoundBank* soundBank, int frequency, double intensity);
	~WaveFormProvider(){}

	void GetData(short* destination, unsigned int length);

	unsigned int frequency;
	WaveForm waveForm;
	unsigned int waveIndex;
	SoundBank* soundBank;
};

class WhiteNoiseProvider : public SampleDataProvider
{
public:
	WhiteNoiseProvider(){}
	~WhiteNoiseProvider(){}

	void GetData(short* destination, unsigned int length);
};
